home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Texteditors / Origami / bindings / vi-fun / stdmac < prev    next >
Encoding:
Text File  |  1996-09-27  |  7.3 KB  |  348 lines

  1. {{{F fun/mt-fold
  2. :::F fun/mt-fold
  3. }}}
  4. {{{F fun/error
  5. :::F fun/error
  6. }}}
  7. {{{F fun/go-line
  8. :::F fun/go-line
  9. }}}
  10. {{{F fun/delspaces
  11. :::F fun/delspaces
  12. }}}
  13. {{{F fun/append
  14. :::F fun/append
  15. }}}
  16. {{{F fun/pre-char
  17. :::F fun/pre-char
  18. }}}
  19. {{{F fun/go-match
  20. :::F fun/go-match
  21. }}}
  22. {{{  backward-word              move one word left
  23. {{{  backward-text-word
  24. {{{  word-line-up
  25. ( deffun word-line-up
  26.    ( if test-top ( failed ) fi
  27.      previous-line
  28.      end-of-line
  29.    )
  30. )
  31. }}}
  32.  
  33. ( deffun backward-text-word
  34.    (
  35.      {{{  one step left
  36.      if test-begin-line
  37.        ( word-line-up )
  38.      else
  39.        ( backward-character )
  40.      fi
  41.      }}}
  42.      while not(test-char-set word-char)
  43.       {{{  back or line up
  44.       ( if =(store-pos 1)
  45.          ( word-line-up )
  46.         else
  47.          ( backward-character )
  48.         fi
  49.       )
  50.       }}}
  51.      {{{  start-word
  52.      while test-char-set word-char
  53.       ( if test-begin-line
  54.          ( return-from-macro )
  55.         else
  56.          ( backward-character )
  57.         fi
  58.       )
  59.      forward-character
  60.      }}}
  61.    )
  62. )
  63. }}}
  64.  
  65. ( deffun backward-word
  66.    ( case
  67.       {{{  programming
  68.       @if-using (L-EXT)
  69.       ( and
  70.          ( counter>0 extended,
  71.            test-text,
  72.            {{{  programming-language
  73.            or
  74.             ( test-language "c,
  75.               test-language "p,
  76.               test-language "t,
  77.               test-language "o,
  78.               test-language "i
  79.             )
  80.            }}}
  81.          )
  82.         {{{  previous-s-expression
  83.         ( case
  84.            {{{  closing paren, bracket or brace
  85.            ( test-char-set closing-fence
  86.               ( if test-text
  87.                  ( goto-matching-fence backward-text-word )
  88.                 else
  89.                  ( backward-text-word )
  90.                 fi
  91.               )
  92.            )
  93.            }}}
  94.            {{{  double quote
  95.            ( test-char ""
  96.               ( backward-character
  97.                 while not(or(test-begin-line,test-char "" ))
  98.                  ( backward-character )
  99.               )
  100.            )
  101.            }}}
  102.            {{{  single quote
  103.            ( test-char "'
  104.               ( backward-character
  105.                 while not(or(test-begin-line,test-char "' ))
  106.                  ( backward-character )
  107.               )
  108.            )
  109.            }}}
  110.            {{{  in word
  111.            ( test-char-set word-char ( backward-text-word ) )
  112.            }}}
  113.           default
  114.            {{{  go left
  115.            ( while not(or(test-char-set word-char,
  116.                           test-char-set closing-fence,
  117.                           test-char "",test-char "',
  118.                           test-begin-line))
  119.               ( backward-character )
  120.            )
  121.            }}}
  122.           esac
  123.         )
  124.         }}}
  125.       )
  126.       @fi
  127.       }}}
  128.      default
  129.       ( backward-text-word )
  130.      esac
  131.    )
  132. )
  133. }}}
  134. {{{  forward-word               move to next word right
  135. {{{  forward-text-word
  136. {{{  word-line-down          go to beginning of next line for word
  137. ( defmac word-line-down
  138.    ( if test-bottom ( failed ) fi
  139.      next-line
  140.      beginning-of-line
  141.    )
  142. )
  143. }}}
  144.  
  145. ( deffun forward-text-word
  146.    (
  147.      {{{  end word or next-line
  148.      if test-end-line
  149.        ( word-line-down )
  150.      else
  151.        ( while test-char-set word-char ( forward-character ) )
  152.      fi
  153.      }}}
  154.      while not(test-char-set word-char)
  155.       {{{  right or down
  156.       ( if test-end-line ( word-line-down ) else ( forward-character ) fi )
  157.       }}}
  158.    )
  159. )
  160. }}}
  161.  
  162. ( deffun forward-word
  163.    ( case
  164.       {{{  programming
  165.       @if-using (L-EXT)
  166.       ( and
  167.          ( counter>0 extended,
  168.            test-text,
  169.            {{{  programming-language
  170.            or
  171.             ( test-language "c,
  172.               test-language "p,
  173.               test-language "t,
  174.               test-language "o,
  175.               test-language "i
  176.             )
  177.            }}}
  178.          )
  179.         {{{  next-s-expression
  180.         ( case
  181.            {{{  opening paren, bracket or brace
  182.            ( test-char-set opening-fence
  183.               ( if test-text
  184.                  ( goto-matching-fence forward-character )
  185.                 else
  186.                  ( forward-text-word )
  187.                 fi
  188.               )
  189.            )
  190.            }}}
  191.            {{{  double quote
  192.            ( test-char ""
  193.               ( forward-character
  194.                 while not(or(test-end-line,test-char "" ))
  195.                  ( forward-character )
  196.               )
  197.            )
  198.            }}}
  199.            {{{  single quote
  200.            ( test-char "'
  201.               ( forward-character
  202.                 while not(or(test-end-line,test-char "' ))
  203.                  ( forward-character )
  204.               )
  205.            )
  206.            }}}
  207.            {{{  in word
  208.            ( test-char-set word-char ( forward-text-word ) )
  209.            }}}
  210.           default
  211.             {{{  move right
  212.             ( while not(or(test-char-set word-char,
  213.                            test-char-set opening-fence,
  214.                            test-char "", test-char "',
  215.                            test-end-line))
  216.                ( forward-character )
  217.             )
  218.             }}}
  219.           esac
  220.         )
  221.         }}}
  222.       )
  223.       @fi
  224.       }}}
  225.      default
  226.       ( forward-text-word )
  227.      esac
  228.    )
  229. )
  230. }}}
  231. {{{  start-word              move to start of current word
  232. (deffun start-word (
  233.    {{{  skip word to next space
  234.    while test-char-set word-char
  235.     ( if test-begin-line
  236.         ( return-from-macro )
  237.       else
  238.         ( backward-character )
  239.       fi
  240.     )
  241.    }}}
  242.    forward-character
  243. ))
  244. }}}
  245. {{{  end-word                skip to whitespace after current word
  246. (deffun end-word (
  247.    while test-char-set word-char
  248.      ( forward-character )
  249. ))
  250. }}}
  251. {{{  next-line-
  252. ( deffun next-line-
  253.    ( if and(test-fold-line >(stepping 0) not(in-prompt))
  254.       ( open-fold )
  255.      fi
  256.      next-line
  257.    )
  258. )
  259. }}}
  260. {{{  previous-line-
  261. ( deffun previous-line-
  262.    ( previous-line
  263.      while and(test-fold-line >(stepping 0) not(in-prompt))
  264.       ( open-fold mtool-bot )
  265.    )
  266. )
  267. }}}
  268. {{{  menu-start-
  269. ;( deffun menu-start-
  270.  ;  ( switch-status-line-on
  271.   ;   para
  272.      ;menu-start
  273.      ;moves
  274. ;   )
  275. ;)
  276. }}}
  277. {{{  add-mode-file-based
  278. ( deffun add-mode-file-based
  279.    ( set stepping 1 ;set-user-mode STEP
  280.    )
  281. )
  282. }}}
  283. {{{  delete-mode-file-based
  284. ( deffun delete-mode-file-based
  285.    ( set stepping 0 ;reset-user-mode STEP
  286.    )
  287. )
  288. }}}
  289. {{{  set-read-tab-width
  290. ( deffun set-read-tab-width
  291.    ( prompt-counter read-tab-width
  292.       ( "read-tab-width "  "(hard-tabs= counter hard-tab ") " )
  293.      if not(>(read-tab-width 0))
  294.       ( set read-tab-width hard-tab )
  295.      fi
  296.    )
  297. )
  298. }}}
  299. @if-using (MOUSY)
  300.    {{{F fun/go-mouse
  301.    :::F fun/go-mouse
  302.    }}}
  303.    {{{  go-and-open-mouse
  304.    ( deffun go-and-open-mouse
  305.       ( if in-prompt
  306.          ( newline-and-indent )
  307.         else
  308.          ( go-mouse-position
  309.            case
  310.             ( test-fold-line ( open-fold ) )
  311.             ( test-filed  ( enter-fold ) )
  312.            esac
  313.          )
  314.         fi
  315.       )
  316.    )
  317.    }}}
  318.    {{{  go-and-close-mouse
  319.    ( deffun go-and-close-mouse
  320.       ( if in-prompt
  321.          ( newline-and-indent )
  322.         else
  323.          ( go-mouse-position close-fold )
  324.         fi
  325.       )
  326.    )
  327.    }}}
  328.    {{{  go-mouse-and-center
  329.    ( deffun go-mouse-and-center
  330.       ( if in-prompt
  331.          ( newline-and-indent )
  332.         else
  333.           ( @if-using ( SCR-OFF )
  334.               screen-off
  335.            @fi
  336.            go-mouse-position
  337.            @if-using ( SCR-OFF )
  338.               screen-on
  339.            @fi
  340.            center-and-redraw-display
  341.            describe-fold
  342.          )
  343.         fi
  344.       )
  345.    )
  346.    }}}
  347. @fi
  348.